// Environment Reflections / Specular highlights
// Generated by Microsoft (R) D3D Shader Disassembler
//
//   using 3Dmigoto v1.3.16 on Fri Sep 13 16:05:19 2019
//
//
// Input signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// TEXCOORD                 0   xy          0     NONE   float   xy
// TEXCOORD                 1   xyz         1     NONE   float   xyz
// SV_POSITION              0   xyzw        2      POS   float   xy
//
//
// Output signature:
//
// Name                 Index   Mask Register SysValue  Format   Used
// -------------------- ----- ------ -------- -------- ------- ------
// SV_Target                0   xyzw        0   TARGET   float   xyzw
//
ps_5_0
dcl_globalFlags refactoringAllowed
dcl_constantbuffer cb0[1], immediateIndexed
dcl_constantbuffer cb1[210], immediateIndexed
dcl_sampler s0, mode_default
dcl_sampler s1, mode_default
dcl_sampler s2, mode_default
dcl_sampler s3, mode_default
dcl_sampler s4, mode_default
dcl_sampler s5, mode_default
dcl_sampler s6, mode_default
dcl_sampler s7, mode_default
dcl_sampler s8, mode_default
dcl_resource_texture2d (float,float,float,float) t0
dcl_resource_texture2d (float,float,float,float) t1
dcl_resource_texture2d (float,float,float,float) t2
dcl_resource_texture2d (float,float,float,float) t3
dcl_resource_texture2d (float,float,float,float) t4
dcl_resource_texture2d (float,float,float,float) t5
dcl_resource_texture2d (float,float,float,float) t6
dcl_resource_texture2d (float,float,float,float) t7
dcl_resource_texture2d (float,float,float,float) t8
dcl_resource_texture2d (float,float,float,float) t9
dcl_resource_texture2d (float,float,float,float) t10
dcl_resource_structured t11, 224
dcl_resource_texture2d (uint,uint,uint,uint) t12
dcl_input_ps linear v0.xy
dcl_input_ps linear v1.xyz
dcl_input_ps_siv linear noperspective v2.xy, position
dcl_output o0.xyzw
dcl_temps 28
dcl_resource_texture2d (float,float,float,float) t125
dcl_resource_texture1d (float,float,float,float) t120
ld_indexable(texture2d)(float,float,float,float) r16.xyzw, l(0, 0, 0, 0), t125.xyzw
ld_indexable(texture1d)(float,float,float,float) r17.xyzw, l(0, 0, 0, 0), t120.xyzw
ld_indexable(texture1d)(float,float,float,float) r18.xyzw, l(2, 0, 0, 0), t120.xyzw

sample_l_indexable(texture2d)(float,float,float,float) r0.xyzw, v0.xyxx, t3.xyzw, s3, l(0.000000)
mul r0.w, r0.w, l(255.000000)
round_ne r0.w, r0.w
ftou r0.w, r0.w
and r1.x, r0.w, l(15)
if_nz r1.x
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r1.y, cb0[0].x, l(140), t11.xxxx
  dp3 r1.z, v1.xyzx, v1.xyzx
  rsq r1.z, r1.z
  mul r2.xyz, r1.zzzz, v1.xyzx

// r2 adjusts specular  

mov r20.xyz, r2.xyz

if_nz r18.x
	mov r20.xyz, l(0,0,0)
endif

// mul r17.w, r17.w, l(0.5)
// mad r20.x, r16.x, r17.w, r20.x


// VPM
// mul r10.xyzw, r2.yyyy, cb1[1].xyzw
// mad r10.xyzw, r2.xxxx, cb1[0].xyzw, r10.xyzw
// mad r10.xyzw, r2.zzzz, cb1[2].xyzw, r10.xyzw
// add r10.xyzw, r10.xyzw, cb1[3].xyzw


// add r16.w, r10.w, -r16.y
// mul r16.w, r16.x, r16.w
// mul r16.w, r16.w, r17.w
// add r10.x, r10.x, -r16.w

// mul r16.w, r16.x, r16.y
// mul r16.w, r16.w, r17.w
// add r10.x, r10.x, -r16.w

// Fixes distant reflections while breaking close
// mul r16.w, r16.x, r10.w
// mul r16.w, r16.w, l(0.5)
// mad r10.x, r16.w, -r17.w, r10.x

// mad r10.x, r16.x, -r17.w, r10.x

// iVPM
// mul r2.xyzw, r10.yyyy, cb1[41].xyzw
// mad r2.xyzw, r10.xxxx, cb1[40].xyzw, r2.xyzw
// mad r2.xyzw, r10.zzzz, cb1[42].xyzw, r2.xyzw
// mad r2.xyzw, r10.wwww, cb1[43].xyzw, r2.xyzw 

// mul r20.xyzw, r10.yyyy, cb1[41].xyzw
// mad r20.xyzw, r10.xxxx, cb1[40].xyzw, r20.xyzw
// mad r20.xyzw, r10.zzzz, cb1[42].xyzw, r20.xyzw
// mad r20.xyzw, r10.wwww, cb1[43].xyzw, r20.xyzw 

  sample_l_indexable(texture2d)(float,float,float,float) r1.z, v0.xyxx, t1.yzxw, s1, l(0.000000)
// mov r10.xy, v0.xy
// mad r10.x, r16.x, r17.w, r10.x
// sample_l_indexable(texture2d)(float,float,float,float) r1.z, r10.xyxx, t1.yzxw, s1, l(0.000000)

  ge r1.w, r1.z, l(0.875000)
  mad r2.w, r1.z, l(8.000000), l(-7.000000)
  movc r1.z, r1.w, r2.w, r1.z
  mad r1.w, r1.z, cb1[65].x, cb1[65].y
  mad r1.z, r1.z, cb1[65].z, -cb1[65].w
  div r1.z, l(1.000000, 1.000000, 1.000000, 1.000000), r1.z
  add r1.z, r1.z, r1.w
  mul r3.xy, v0.xyxx, cb1[140].xyxx
// mad r3.x, r16.x, r17.w, r3.x
//nothing
  ftou r3.xy, r3.xyxx
  mad r4.xyz, v1.xyzx, r1.zzzz, cb1[68].xyzx
// mad r4.x, r16.x, r17.w, r4.x
// nothing
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r5.xyz, cb0[0].x, l(16), t11.xyzx
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r6.xyz, cb0[0].x, l(32), t11.xyzx
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r7.xyz, cb0[0].x, l(48), t11.xyzx
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r8.xyzw, cb0[0].x, l(72), t11.xyzw
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r1.w, cb0[0].x, l(88), t11.xxxx
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r9.xy, cb0[0].x, l(96), t11.xyxx
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r10.xyzw, cb0[0].x, l(112), t11.xyzw
  ld_structured_indexable(structured_buffer, stride=224)(mixed,mixed,mixed,mixed) r2.w, cb0[0].x, l(128), t11.xxxx
  lt r4.w, r1.w, l(0.000000)
  utof r5.w, cb1[151].w
  mad r9.zw, r5.wwww, l(0.000000, 0.000000, 32.665001, 11.815000), v2.xxxy
  dp2 r5.w, r9.zwzz, l(0.0671105608, 0.00583714992, 0.000000, 0.000000)
  frc r5.w, r5.w
  mul r5.w, r5.w, l(52.982918)
  frc r5.w, r5.w
  ige r6.w, cb1[209].x, l(0)
  ine r7.w, r1.y, l(0)
  or r6.w, r6.w, r7.w
  if_nz r6.w
    ld_indexable(texture2d)(float,float,float,float) r6.w, l(0, 0, 0, 0), t10.yzwx
    ne r7.w, r6.w, l(0.000000)
    div r6.w, l(1.000000, 1.000000, 1.000000, 1.000000), r6.w
    movc r6.w, r7.w, r6.w, l(1.000000)
    if_nz r1.y
      mul r5.xyz, r5.xyzx, r6.wwww
    else
      mov r3.zw, l(0,0,0,0)
      ld_indexable(texture2d)(uint,uint,uint,uint) r1.y, r3.xyzw, t12.yxzw
      and r1.y, r1.y, cb1[209].x
      mul r11.xyz, r5.xyzx, cb1[209].yyyy
      mul r11.xyz, r6.wwww, r11.xyzx
      movc r5.xyz, r1.yyyy, r11.xyzx, r5.xyzx
    endif
  endif
  sample_l_indexable(texture2d)(float,float,float,float) r11.xyzw, v0.xyxx, t8.xyzw, s8, l(0.000000)
  mul r12.xyzw, r11.xyzw, r11.xyzw
  mul r1.y, r1.z, cb1[37].y
  if_nz r2.w
    sample_l_indexable(texture2d)(float,float,float,float) r13.xyzw, v0.xyxx, t6.xyzw, s6, l(0.000000)
    and r3.zw, r0.wwww, l(0, 0, 32, 64)
    movc r3.w, r3.w, l(0), l(1.000000)
    movc r13.xyzw, r3.zzzz, r3.wwww, r13.xyzw
    dp4 r3.z, r10.xyzw, l(1.000000, 1.000000, 1.000000, 1.000000)
    dp4 r3.w, r13.xyzw, r10.xyzw
    add r3.w, r3.w, l(-1.000000)
    mad r3.z, r3.z, r3.w, l(1.000000)
    mad_sat r1.z, r1.z, r9.x, r9.y
    mul r1.z, r1.z, r1.z
    mad r3.zw, -r11.xxxy, r11.xxxy, r3.zzzz
    mad r3.zw, r1.zzzz, r3.zzzw, r12.xxxy
    min r1.z, r12.w, r3.w
    mul r9.x, r12.z, r3.z
    mul r9.y, r12.z, r1.z
    ult r1.z, l(1), r2.w
    lt r3.z, l(0.000000), |r1.w|
    and r1.z, r1.z, r3.z
    movc r3.z, r4.w, l(1.000000), r1.y
    mul r1.w, |r1.w|, r3.z
    and r1.z, r1.w, r1.z
  else
    sample_l_indexable(texture2d)(float,float,float,float) r9.x, v0.xyxx, t7.xyzw, s7, l(0.000000)
    mov r9.y, l(1.000000)
    mov r1.z, l(0)
  endif
  ult r1.w, r2.w, l(2)
  ieq r3.zw, r1.xxxx, l(0, 0, 9, 7)
  and r1.w, r1.w, r3.w
  or r1.w, r3.z, r1.w
  mul r1.y, r1.y, l(0.200000)
  movc r1.y, r1.w, r1.y, r1.z
  lt r1.z, l(0.000000), r1.y
  if_nz r1.z
    add r1.z, r5.w, l(-0.500000)
    add r4.xyz, r4.xyzx, cb1[71].xyzx
// mad r4.x, r16.x, r17.w, r4.x
    mul r10.xyzw, r4.yyyy, cb1[1].xyzw
    mad r10.xyzw, r4.xxxx, cb1[0].xyzw, r10.xyzw
    mad r4.xyzw, r4.zzzz, cb1[2].xyzw, r10.xyzw
    add r4.xyzw, r4.xyzw, cb1[3].xyzw
// mad r4.x, r16.x, r17.w, r4.x
    mul r10.xyz, r1.yyyy, r6.xyzx
    mul r11.xyzw, r10.yyyy, cb1[1].xyzw
    mad r11.xyzw, r10.xxxx, cb1[0].xyzw, r11.xyzw
    mad r10.xyzw, r10.zzzz, cb1[2].xyzw, r11.xyzw
    add r10.xyzw, r4.xyzw, r10.xyzw
    div r11.xyz, r4.xyzx, r4.wwww

    div r10.xyz, r10.xyzx, r10.wwww
// mad r10.x, r16.x, r17.w, r10.x
    add r10.xyz, -r11.xyzx, r10.xyzx
    mad r12.xy, r11.xyxx, cb1[67].xyxx, cb1[67].wzww
    mul r13.xy, r10.xyxx, cb1[67].xyxx
    mad r1.yw, r1.yyyy, cb1[30].zzzw, r4.zzzw
    div r1.y, r1.y, r1.w
    add r1.y, -r11.z, r1.y
    mul r1.w, |r1.y|, l(0.250000)
    mad r4.xyzw, r1.zzzz, l(0.125000, 0.125000, 0.125000, 0.125000), l(0.125000, 0.250000, 0.375000, 0.500000)
    mov r13.z, r10.z
    mov r12.z, r11.z
    mad r14.xyz, r13.xyzx, r4.xxxx, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r2.w, r14.xyxx, t1.yzwx, s1, l(0.000000)
    add r2.w, -r2.w, r14.z
    mad r2.w, |r1.y|, l(0.250000), r2.w
    lt r2.w, |r2.w|, r1.w
    movc r2.w, r2.w, r4.x, l(-1.000000)
    mad r14.xyz, r13.xyzx, r4.yyyy, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.x, r14.xyxx, t1.xyzw, s1, l(0.000000)
    add r4.x, -r4.x, r14.z
    mad r4.x, |r1.y|, l(0.250000), r4.x
    lt r4.x, |r4.x|, r1.w
    lt r5.w, r2.w, l(0.000000)
    and r4.x, r4.x, r5.w
    movc r2.w, r4.x, r4.y, r2.w
    mad r14.xyz, r13.xyzx, r4.zzzz, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.x, r14.xyxx, t1.xyzw, s1, l(0.000000)
    add r4.x, -r4.x, r14.z
    mad r4.x, |r1.y|, l(0.250000), r4.x
    lt r4.x, |r4.x|, r1.w
    lt r4.y, r2.w, l(0.000000)
    and r4.x, r4.y, r4.x
    movc r2.w, r4.x, r4.z, r2.w
    mad r4.xyz, r13.xyzx, r4.wwww, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r4.x, r4.xyxx, t1.xyzw, s1, l(0.000000)
    add r4.x, -r4.x, r4.z
    mad r4.x, |r1.y|, l(0.250000), r4.x
    lt r4.x, |r4.x|, r1.w
    lt r4.y, r2.w, l(0.000000)
    and r4.x, r4.y, r4.x
    movc r2.w, r4.x, r4.w, r2.w
    mad r4.xyzw, r1.zzzz, l(0.125000, 0.125000, 0.125000, 0.125000), l(0.625000, 0.750000, 0.875000, 1.000000)
    mad r14.xyz, r13.xyzx, r4.xxxx, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r1.z, r14.xyxx, t1.yzxw, s1, l(0.000000)
    add r1.z, -r1.z, r14.z
    mad r1.z, |r1.y|, l(0.250000), r1.z
    lt r1.z, |r1.z|, r1.w
    lt r5.w, r2.w, l(0.000000)
    and r1.z, r1.z, r5.w
    movc r1.z, r1.z, r4.x, r2.w
    mad r14.xyz, r13.xyzx, r4.yyyy, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r2.w, r14.xyxx, t1.yzwx, s1, l(0.000000)
    add r2.w, -r2.w, r14.z
    mad r2.w, |r1.y|, l(0.250000), r2.w
    lt r2.w, |r2.w|, r1.w
    lt r4.x, r1.z, l(0.000000)
    and r2.w, r2.w, r4.x
    movc r1.z, r2.w, r4.y, r1.z
    mad r14.xyz, r13.xyzx, r4.zzzz, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r2.w, r14.xyxx, t1.yzwx, s1, l(0.000000)
    add r2.w, -r2.w, r14.z
    mad r2.w, |r1.y|, l(0.250000), r2.w
    lt r2.w, |r2.w|, r1.w
    lt r4.x, r1.z, l(0.000000)
    and r2.w, r2.w, r4.x
    movc r1.z, r2.w, r4.z, r1.z
    mad r4.xyz, r13.xyzx, r4.wwww, r12.xyzx
    sample_l_indexable(texture2d)(float,float,float,float) r2.w, r4.xyxx, t1.yzwx, s1, l(0.000000)
    add r2.w, -r2.w, r4.z
    mad r1.y, |r1.y|, l(0.250000), r2.w
    lt r1.y, |r1.y|, r1.w
    lt r1.w, r1.z, l(0.000000)
    and r1.y, r1.w, r1.y
    movc r1.y, r1.y, r4.w, r1.z
    lt r1.z, l(0.000000), r1.y
    and r1.z, r1.z, l(0x3f800000)
    mad r1.yw, r10.xxxy, r1.yyyy, r11.xxxy
    mad r1.yw, |r1.yyyw|, l(0.000000, 6.000000, 0.000000, 6.000000), l(0.000000, -5.000000, 0.000000, -5.000000)
    max r1.yw, r1.yyyw, l(0.000000, 0.000000, 0.000000, 0.000000)
    dp2 r1.y, r1.ywyy, r1.ywyy
    add r1.y, -r1.y, l(1.000000)
    max r1.y, r1.y, l(0.000000)
    mad r1.y, -r1.z, r1.y, l(1.000000)
    mul r9.xz, r1.yyyy, r9.xxyx
    ine r1.z, r1.x, l(9)
    mad r1.y, r1.y, l(0.500000), l(0.500000)
    mul r1.y, r1.y, r9.y
    movc r1.y, r1.z, r1.y, r9.y
    movc r9.y, r3.w, r9.z, r1.y
  endif
  add r1.y, r9.y, r9.x
  lt r1.y, l(0.000000), r1.y
  if_nz r1.y
    sample_l_indexable(texture2d)(float,float,float,float) r1.yzw, v0.xyxx, t2.wxyz, s2, l(0.000000)
    sample_l_indexable(texture2d)(float,float,float,float) r4.xyz, v0.xyxx, t4.xyzw, s4, l(0.000000)
    sample_l_indexable(texture2d)(float,float,float,float) r10.xyzw, v0.xyxx, t5.xyzw, s5, l(0.000000)
    ftou r2.w, cb1[160].x
    iadd r3.x, r3.y, r3.x
    iadd r2.w, r2.w, r3.x
    and r2.w, r2.w, l(1)
    mad r1.yzw, r1.yyzw, l(0.000000, 2.000000, 2.000000, 2.000000), l(0.000000, -1.000000, -1.000000, -1.000000)
    dp3 r3.x, r1.yzwy, r1.yzwy
    rsq r3.x, r3.x
    mul r11.xyz, r1.yzwy, r3.xxxx
    and r0.w, r0.w, l(16)
    movc r10.xyzw, r0.wwww, l(0,0,0,0), r10.xyzw
    movc r0.w, r3.z, l(0), r0.x
    mul r3.y, r0.y, l(0.080000)
    mad r12.xyz, -r0.yyyy, l(0.080000, 0.080000, 0.080000, 0.000000), r4.xyzx
    mad r12.xyz, r0.wwww, r12.xyzx, r3.yyyy
    ieq r3.y, r1.x, l(5)
    or r3.y, r3.z, r3.y
    lt r3.z, l(0.000000), cb1[164].x
    lt r3.w, l(0.000000), cb1[196].w
    and r3.z, r3.w, r3.z
    ne r3.w, l(0.000000, 0.000000, 0.000000, 0.000000), cb1[164].x
    movc r13.xyz, r3.wwww, l(1.000000,1.000000,1.000000,0), r4.xyzx
    movc r9.zw, r2.wwww, l(0,0,1.000000,0), l(0,0,0,1.000000)
    mul r14.xyz, r9.wwww, r12.xyzx
    mul r14.w, r0.y, r9.w
    movc r13.xyz, r3.zzzz, r9.zzzz, r13.xyzx
    mov r12.w, r0.y
    movc r14.xyzw, r3.zzzz, r14.xyzw, r12.xyzw
    movc r14.xyz, r3.yyyy, r14.xyzx, r12.xyzx
    mov r13.w, r14.w
    mov r12.xyz, r4.xyzx
    movc r4.xyzw, r3.yyyy, r13.xyzw, r12.xyzw
    mad r12.xyz, -r4.xyzx, r0.wwww, r4.xyzx
    mad r12.xyz, r12.xyzx, cb1[143].wwww, cb1[143].xyzx
    mad r13.xyz, r14.xyzx, cb1[144].wwww, cb1[144].xyzx
    mul r0.y, r8.w, l(0.500000)
    mad r14.xyz, -r0.yyyy, r7.xyzx, r6.xyzx
    mad r6.xyz, r0.yyyy, r7.xyzx, r6.xyzx
    lt r3.zw, l(0.000000, 0.000000, 0.000000, 0.000000), r8.wwwy
    if_nz r3.z
      dp3 r0.y, r14.xyzx, r14.xyzx
      dp3 r2.w, r6.xyzx, r6.xyzx
      rsq r0.y, r0.y
      rsq r2.w, r2.w
      mul r5.w, r0.y, r2.w
      dp3 r6.w, r14.xyzx, r6.xyzx
      mul r6.w, r5.w, r6.w
      mad r7.x, r6.w, l(0.500000), r5.w
      add r7.x, r7.x, l(0.500000)
      div r5.w, r5.w, r7.x
      dp3 r7.x, r11.xyzx, r14.xyzx
      dp3 r7.y, r11.xyzx, r6.xyzx
      mul r2.w, r2.w, r7.y
      mad r0.y, r7.x, r0.y, r2.w
      mul r0.y, r0.y, l(0.500000)
    else
      dp3 r2.w, r14.xyzx, r14.xyzx
      add r7.x, r2.w, l(1.000000)
      rcp r5.w, r7.x
      rsq r2.w, r2.w
      mul r7.xyz, r2.wwww, r14.xyzx
      dp3 r0.y, r11.xyzx, r7.xyzx
      mov r6.w, l(1.000000)
    endif
    mul r7.xy, r8.ywyy, r8.ywyy
    mul_sat r2.w, r5.w, r7.x
    sqrt r2.w, r2.w
    lt r5.w, r0.y, r2.w
    max r7.x, r0.y, -r2.w
    add r7.x, r2.w, r7.x
    mul r7.x, r7.x, r7.x
    mul r2.w, r2.w, l(4.000000)
    div r2.w, r7.x, r2.w
    movc r2.w, r5.w, r2.w, r0.y
    movc_sat r0.y, r3.w, r2.w, r0.y
    dp3 r2.w, r2.xyzx, r11.xyzx
    add r2.w, r2.w, r2.w
    mad r7.xzw, r11.xxyz, -r2.wwww, r2.xxyz
    add r6.xyz, -r14.xyzx, r6.xyzx
    dp3 r2.w, r7.xzwx, r6.xyzx
    mad r7.xzw, r2.wwww, r7.xxzw, -r6.xxyz
    dp3 r3.w, r14.xyzx, r7.xzwx
    mad r2.w, -r2.w, r2.w, r7.y
    div_sat r2.w, r3.w, r2.w
    mad r6.xyz, r2.wwww, r6.xyzx, r14.xyzx
    movc r6.xyz, r3.zzzz, r6.xyzx, r14.xyzx
    dp3 r2.w, r6.xyzx, r6.xyzx
    rsq r2.w, r2.w
    mul r7.xyz, r2.wwww, r6.xyzx
    max r0.z, r0.z, l(0.020000)
    mul r3.z, r0.z, r0.z
    mul r8.yz, r2.wwww, r8.zzyz
    mad r3.w, -r0.z, r0.z, l(1.000000)
    mul_sat r5.w, r3.w, r8.z
    mov_sat r8.y, r8.y
    switch r1.x
      case l(1)
      dp3 r1.x, r11.xyzx, r7.xyzx
      dp3 r7.w, r11.xyzx, -r20.xyzx
// Candidate
      dp3 r8.z, -r20.xyzx, r7.xyzx
// Candidate
      lt r8.w, l(0.000000), r5.w
      if_nz r8.w
        mad r9.z, -r5.w, r5.w, l(1.000000)
        sqrt r9.z, r9.z
        dp2 r9.w, r7.wwww, r1.xxxx
        add r11.w, -r8.z, r9.w
        ge r12.w, r11.w, r9.z
        if_nz r12.w
          mov r12.w, l(1.000000)
          mov r13.w, |r7.w|
        else
          mad r14.w, -r11.w, r11.w, l(1.000000)
          rsq r14.w, r14.w
          mul r14.w, r5.w, r14.w
          mad r15.w, -r11.w, r1.x, r7.w
          mul r16.w, r14.w, r15.w
          mul r17.x, r7.w, r7.w
          mad r17.x, r17.x, l(2.000000), l(-1.000000)
          mad r11.w, -r11.w, r8.z, r17.x
          mul r11.w, r11.w, r14.w
          mad r17.x, -r1.x, r1.x, l(1.000000)
          mad r17.x, -r7.w, r7.w, r17.x
          mad r17.x, -r8.z, r8.z, r17.x
          mad_sat r9.w, r9.w, r8.z, r17.x
          sqrt r9.w, r9.w
          mul r9.w, r9.w, r14.w
          mul r17.x, r7.w, r9.w
          add r17.y, r17.x, r17.x
          mad r17.z, r1.x, r9.z, r7.w
          mad r14.w, r14.w, r15.w, r17.z
          mad r15.w, r8.z, r9.z, r11.w
          add r15.w, r15.w, l(1.000000)
          mul r17.w, r9.w, r15.w
          mul r18.x, r14.w, r15.w
          mul r18.y, r14.w, r17.y
          mul r17.x, r17.x, r14.w
          mul r17.x, r17.x, l(0.500000)
          mad r17.x, r17.w, l(-0.500000), r17.x
          mul r17.x, r17.x, r18.x
          mad r18.z, -r17.w, l(2.000000), r18.y
          mul r18.y, r18.z, r18.y
          mad r17.w, r17.w, r17.w, r18.y
          mul r18.y, r15.w, r15.w
          mad r15.w, r8.z, r9.z, r15.w
          mad r15.w, r15.w, l(-0.500000), l(-0.500000)
          mul r15.w, r15.w, r18.x
          mad r15.w, r17.z, r18.y, r15.w
          mad r14.w, r14.w, r15.w, r17.w
          add r15.w, r17.x, r17.x
          mul r17.z, r17.x, r17.x
          mad r17.z, r14.w, r14.w, r17.z
          div r15.w, r15.w, r17.z
          mul r14.w, r14.w, r15.w
          mad r15.w, -r15.w, r17.x, l(1.000000)
          mul r9.w, r9.w, r14.w
          mad r9.w, r15.w, r16.w, r9.w
          mul r14.w, r17.y, r14.w
          mad r11.w, r15.w, r11.w, r14.w
          mad r9.w, r1.x, r9.z, r9.w
          mad r9.z, r8.z, r9.z, r11.w
          mad r11.w, r9.z, l(2.000000), l(2.000000)
          rsq r11.w, r11.w
          add r9.w, r7.w, r9.w
          mul_sat r12.w, r11.w, r9.w
          mad_sat r13.w, r11.w, r9.z, r11.w
        endif
      else
        mad r9.z, r8.z, l(2.000000), l(2.000000)
        rsq r9.z, r9.z
        add r1.x, r1.x, r7.w
        mul_sat r12.w, r9.z, r1.x
        mad_sat r13.w, r9.z, r8.z, r9.z
      endif
      add r1.x, |r7.w|, l(0.000010)
      min r1.x, r1.x, l(1.000000)
      mul r17.xyz, r0.yyyy, r12.xyzx
      mul r14.xyz, r17.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mul r7.w, r3.z, r3.z
      lt r8.z, l(0.000000), r8.y
      mul r9.z, r8.y, r8.y
      mad r9.w, r13.w, l(3.600000), l(0.400000)
      div r9.z, r9.z, r9.w
      mad r9.z, r3.z, r3.z, r9.z
      min r9.z, r9.z, l(1.000000)
      movc r17.x, r8.z, r9.z, r7.w
      mul r7.w, r5.w, l(0.250000)
      ishr r8.z, r17.x, l(1)
      iadd r8.z, r8.z, l(0x1fbd1df5)
      mad r8.z, r8.z, l(3.000000), r5.w
      mul r7.w, r7.w, r8.z
      add r8.z, r13.w, l(0.001000)
      div r7.w, r7.w, r8.z
      add r18.x, r7.w, r17.x
      div r18.y, r17.x, r18.x
      mov r17.y, l(1.000000)
      movc r9.zw, r8.wwww, r18.xxxy, r17.xxxy
      lt r7.w, r6.w, l(1.000000)
      add r8.w, -r6.w, l(1.000100)
      add r11.w, r6.w, l(1.000000)
      div r8.w, r8.w, r11.w
      sqrt r8.w, r8.w
      mul r11.w, r8.w, l(0.250000)
      ishr r14.w, r9.z, l(1)
      iadd r14.w, r14.w, l(0x1fbd1df5)
      mad r8.w, r14.w, l(3.000000), r8.w
      mul r8.w, r8.w, r11.w
      div r8.z, r8.w, r8.z
      add r8.z, r8.z, r9.z
      div r8.z, r9.z, r8.z
      sqrt r8.z, r8.z
      mul r8.z, r8.z, r9.w
      movc r7.w, r7.w, r8.z, r9.w
      mad r8.z, r12.w, r17.x, -r12.w
      mad r8.z, r8.z, r12.w, l(1.000000)
      mul r8.z, r8.z, r8.z
      mul r8.z, r8.z, l(3.14159274)
      div r8.z, r17.x, r8.z
      mul r7.w, r7.w, r8.z
      sqrt r8.z, r17.x
      add r8.w, -r8.z, l(1.000000)
      mad r9.z, r1.x, r8.w, r8.z
      mad r8.z, r0.y, r8.w, r8.z
      mul r1.x, r1.x, r8.z
      mad r1.x, r0.y, r9.z, r1.x
      rcp r1.x, r1.x
      mul r1.x, r1.x, r7.w
      add r7.w, -r13.w, l(1.000000)
      mul r8.z, r7.w, r7.w
      mul r8.z, r8.z, r8.z
      mul r8.w, r7.w, r8.z
      mul_sat r9.z, r13.y, l(50.000000)
      mad r7.w, -r8.z, r7.w, l(1.000000)
      mul r17.xyz, r13.xyzx, r7.wwww
      mad r17.xyz, r9.zzzz, r8.wwww, r17.xyzx
      mul r1.x, r1.x, l(0.500000)
      mul r17.xyz, r17.xyzx, r1.xxxx
      mul r15.xyz, r0.yyyy, r17.xyzx
      mov r16.xyz, l(0,0,0,0)
      break
      case l(2)
      dp3 r1.x, r11.xyzx, r7.xyzx
      dp3 r7.w, r11.xyzx, -r2.xyzx
      dp3 r8.z, -r2.xyzx, r7.xyzx
      lt r8.w, l(0.000000), r5.w
      if_nz r8.w
        mad r9.z, -r5.w, r5.w, l(1.000000)
        sqrt r9.z, r9.z
        dp2 r9.w, r7.wwww, r1.xxxx
        add r11.w, -r8.z, r9.w
        ge r12.w, r11.w, r9.z
        if_nz r12.w
          mov r12.w, l(1.000000)
          mov r13.w, |r7.w|
        else
          mad r14.w, -r11.w, r11.w, l(1.000000)
          rsq r14.w, r14.w
          mul r14.w, r5.w, r14.w
          mad r15.w, -r11.w, r1.x, r7.w
          mul r16.w, r14.w, r15.w
          mul r17.x, r7.w, r7.w
          mad r17.x, r17.x, l(2.000000), l(-1.000000)
          mad r11.w, -r11.w, r8.z, r17.x
          mul r11.w, r11.w, r14.w
          mad r17.x, -r1.x, r1.x, l(1.000000)
          mad r17.x, -r7.w, r7.w, r17.x
          mad r17.x, -r8.z, r8.z, r17.x
          mad_sat r9.w, r9.w, r8.z, r17.x
          sqrt r9.w, r9.w
          mul r9.w, r9.w, r14.w
          mul r17.x, r7.w, r9.w
          add r17.y, r17.x, r17.x
          mad r17.z, r1.x, r9.z, r7.w
          mad r14.w, r14.w, r15.w, r17.z
          mad r15.w, r8.z, r9.z, r11.w
          add r15.w, r15.w, l(1.000000)
          mul r17.w, r9.w, r15.w
          mul r18.x, r14.w, r15.w
          mul r18.y, r14.w, r17.y
          mul r17.x, r17.x, r14.w
          mul r17.x, r17.x, l(0.500000)
          mad r17.x, r17.w, l(-0.500000), r17.x
          mul r17.x, r17.x, r18.x
          mad r18.z, -r17.w, l(2.000000), r18.y
          mul r18.y, r18.z, r18.y
          mad r17.w, r17.w, r17.w, r18.y
          mul r18.y, r15.w, r15.w
          mad r15.w, r8.z, r9.z, r15.w
          mad r15.w, r15.w, l(-0.500000), l(-0.500000)
          mul r15.w, r15.w, r18.x
          mad r15.w, r17.z, r18.y, r15.w
          mad r14.w, r14.w, r15.w, r17.w
          add r15.w, r17.x, r17.x
          mul r17.z, r17.x, r17.x
          mad r17.z, r14.w, r14.w, r17.z
          div r15.w, r15.w, r17.z
          mul r14.w, r14.w, r15.w
          mad r15.w, -r15.w, r17.x, l(1.000000)
          mul r9.w, r9.w, r14.w
          mad r9.w, r15.w, r16.w, r9.w
          mul r14.w, r17.y, r14.w
          mad r11.w, r15.w, r11.w, r14.w
          mad r9.w, r1.x, r9.z, r9.w
          mad r9.z, r8.z, r9.z, r11.w
          mad r11.w, r9.z, l(2.000000), l(2.000000)
          rsq r11.w, r11.w
          add r9.w, r7.w, r9.w
          mul_sat r12.w, r11.w, r9.w
          mad_sat r13.w, r11.w, r9.z, r11.w
        endif
      else
        mad r9.z, r8.z, l(2.000000), l(2.000000)
        rsq r9.z, r9.z
        add r1.x, r1.x, r7.w
        mul_sat r12.w, r9.z, r1.x
        mad_sat r13.w, r9.z, r8.z, r9.z
      endif
      add r1.x, |r7.w|, l(0.000010)
      min r1.x, r1.x, l(1.000000)
      mul r17.xyz, r0.yyyy, r12.xyzx
      mul r14.xyz, r17.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mul r7.w, r3.z, r3.z
      lt r8.z, l(0.000000), r8.y
      mul r9.z, r8.y, r8.y
      mad r9.w, r13.w, l(3.600000), l(0.400000)
      div r9.z, r9.z, r9.w
      mad r9.z, r3.z, r3.z, r9.z
      min r9.z, r9.z, l(1.000000)
      movc r17.x, r8.z, r9.z, r7.w
      mul r7.w, r5.w, l(0.250000)
      ishr r8.z, r17.x, l(1)
      iadd r8.z, r8.z, l(0x1fbd1df5)
      mad r8.z, r8.z, l(3.000000), r5.w
      mul r7.w, r7.w, r8.z
      add r8.z, r13.w, l(0.001000)
      div r7.w, r7.w, r8.z
      add r18.x, r7.w, r17.x
      div r18.y, r17.x, r18.x
      mov r17.y, l(1.000000)
      movc r9.zw, r8.wwww, r18.xxxy, r17.xxxy
      lt r7.w, r6.w, l(1.000000)
      add r8.w, -r6.w, l(1.000100)
      add r11.w, r6.w, l(1.000000)
      div r8.w, r8.w, r11.w
      sqrt r8.w, r8.w
      mul r11.w, r8.w, l(0.250000)
      ishr r14.w, r9.z, l(1)
      iadd r14.w, r14.w, l(0x1fbd1df5)
      mad r8.w, r14.w, l(3.000000), r8.w
      mul r8.w, r8.w, r11.w
      div r8.z, r8.w, r8.z
      add r8.z, r8.z, r9.z
      div r8.z, r9.z, r8.z
      sqrt r8.z, r8.z
      mul r8.z, r8.z, r9.w
      movc r7.w, r7.w, r8.z, r9.w
      mad r8.z, r12.w, r17.x, -r12.w
      mad r8.z, r8.z, r12.w, l(1.000000)
      mul r8.z, r8.z, r8.z
      mul r8.z, r8.z, l(3.14159274)
      div r8.z, r17.x, r8.z
      mul r7.w, r7.w, r8.z
      sqrt r8.z, r17.x
      add r8.w, -r8.z, l(1.000000)
      mad r9.z, r1.x, r8.w, r8.z
      mad r8.z, r0.y, r8.w, r8.z
      mul r1.x, r1.x, r8.z
      mad r1.x, r0.y, r9.z, r1.x
      rcp r1.x, r1.x
      mul r1.x, r1.x, r7.w
      add r7.w, -r13.w, l(1.000000)
      mul r8.z, r7.w, r7.w
      mul r8.z, r8.z, r8.z
      mul r8.w, r7.w, r8.z
      mul_sat r9.z, r13.y, l(50.000000)
      mad r7.w, -r8.z, r7.w, l(1.000000)
      mul r17.xyz, r13.xyzx, r7.wwww
      mad r17.xyz, r9.zzzz, r8.wwww, r17.xyzx
      mul r1.x, r1.x, l(0.500000)
      mul r17.xyz, r17.xyzx, r1.xxxx
      mul r15.xyz, r0.yyyy, r17.xyzx
      mul r17.xyz, r10.xyzx, r10.xyzx
      mad r6.xyz, r6.xyzx, r2.wwww, -r2.xyzx
      dp3 r1.x, r6.xyzx, r6.xyzx
      rsq r1.x, r1.x
      mul r6.xyz, r1.xxxx, r6.xyzx
      dp3_sat r1.x, r7.xyzx, r2.xyzx
      log r1.x, r1.x
      mul r1.x, r1.x, l(12.000000)
      exp r1.x, r1.x
      mad r2.w, r10.w, l(-2.900000), l(3.000000)
      mul r1.x, r1.x, r2.w
      dp3 r2.w, r11.xyzx, r6.xyzx
      mad r2.w, r2.w, r10.w, l(1.000000)
      add_sat r2.w, -r10.w, r2.w
      mul r6.x, r2.w, l(0.159154937)
      mad r2.w, -r2.w, l(0.159154937), l(1.000000)
      mad r1.x, r1.x, r2.w, r6.x
      mul r16.xyz, r17.xyzx, r1.xxxx
      break
      case l(3)
      dp3 r1.x, r11.xyzx, r7.xyzx
      dp3 r2.w, r11.xyzx, -r2.xyzx
      dp3 r6.x, -r2.xyzx, r7.xyzx
      lt r6.y, l(0.000000), r5.w
      if_nz r6.y
        mad r6.z, -r5.w, r5.w, l(1.000000)
        sqrt r6.z, r6.z
        dp2 r7.w, r2.wwww, r1.xxxx
        add r8.z, -r6.x, r7.w
        ge r8.w, r8.z, r6.z
        if_nz r8.w
          mov r8.w, l(1.000000)
          mov r9.z, |r2.w|
        else
          mad r9.w, -r8.z, r8.z, l(1.000000)
          rsq r9.w, r9.w
          mul r9.w, r5.w, r9.w
          mad r11.w, -r8.z, r1.x, r2.w
          mul r12.w, r9.w, r11.w
          mul r13.w, r2.w, r2.w
          mad r13.w, r13.w, l(2.000000), l(-1.000000)
          mad r8.z, -r8.z, r6.x, r13.w
          mul r8.z, r8.z, r9.w
          mad r13.w, -r1.x, r1.x, l(1.000000)
          mad r13.w, -r2.w, r2.w, r13.w
          mad r13.w, -r6.x, r6.x, r13.w
          mad_sat r7.w, r7.w, r6.x, r13.w
          sqrt r7.w, r7.w
          mul r7.w, r7.w, r9.w
          mul r13.w, r2.w, r7.w
          add r14.w, r13.w, r13.w
          mad r15.w, r1.x, r6.z, r2.w
          mad r9.w, r9.w, r11.w, r15.w
          mad r11.w, r6.x, r6.z, r8.z
          add r11.w, r11.w, l(1.000000)
          mul r16.w, r7.w, r11.w
          mul r17.x, r9.w, r11.w
          mul r17.y, r9.w, r14.w
          mul r13.w, r13.w, r9.w
          mul r13.w, r13.w, l(0.500000)
          mad r13.w, r16.w, l(-0.500000), r13.w
          mul r13.w, r13.w, r17.x
          mad r17.z, -r16.w, l(2.000000), r17.y
          mul r17.y, r17.z, r17.y
          mad r16.w, r16.w, r16.w, r17.y
          mul r17.y, r11.w, r11.w
          mad r11.w, r6.x, r6.z, r11.w
          mad r11.w, r11.w, l(-0.500000), l(-0.500000)
          mul r11.w, r11.w, r17.x
          mad r11.w, r15.w, r17.y, r11.w
          mad r9.w, r9.w, r11.w, r16.w
          add r11.w, r13.w, r13.w
          mul r15.w, r13.w, r13.w
          mad r15.w, r9.w, r9.w, r15.w
          div r11.w, r11.w, r15.w
          mul r9.w, r9.w, r11.w
          mad r11.w, -r11.w, r13.w, l(1.000000)
          mul r7.w, r7.w, r9.w
          mad r7.w, r11.w, r12.w, r7.w
          mul r9.w, r14.w, r9.w
          mad r8.z, r11.w, r8.z, r9.w
          mad r7.w, r1.x, r6.z, r7.w
          mad r6.z, r6.x, r6.z, r8.z
          mad r8.z, r6.z, l(2.000000), l(2.000000)
          rsq r8.z, r8.z
          add r7.w, r2.w, r7.w
          mul_sat r8.w, r8.z, r7.w
          mad_sat r9.z, r8.z, r6.z, r8.z
        endif
      else
        mad r6.z, r6.x, l(2.000000), l(2.000000)
        rsq r6.z, r6.z
        add r7.w, r1.x, r2.w
        mul_sat r8.w, r6.z, r7.w
        mad_sat r9.z, r6.z, r6.x, r6.z
      endif
      add r2.w, |r2.w|, l(0.000010)
      min r2.w, r2.w, l(1.000000)
      mul r17.xyz, r0.yyyy, r12.xyzx
      mul r14.xyz, r17.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mul r6.x, r3.z, r3.z
      lt r6.z, l(0.000000), r8.y
      mul r7.w, r8.y, r8.y
      mad r8.z, r9.z, l(3.600000), l(0.400000)
      div r7.w, r7.w, r8.z
      mad r7.w, r3.z, r3.z, r7.w
      min r7.w, r7.w, l(1.000000)
      movc r17.x, r6.z, r7.w, r6.x
      mul r6.x, r5.w, l(0.250000)
      ishr r6.z, r17.x, l(1)
      iadd r6.z, r6.z, l(0x1fbd1df5)
      mad r6.z, r6.z, l(3.000000), r5.w
      mul r6.x, r6.z, r6.x
      add r6.z, r9.z, l(0.001000)
      div r6.x, r6.x, r6.z
      add r18.x, r6.x, r17.x
      div r18.y, r17.x, r18.x
      mov r17.y, l(1.000000)
      movc r6.xy, r6.yyyy, r18.xyxx, r17.xyxx
      lt r7.w, r6.w, l(1.000000)
      add r8.z, -r6.w, l(1.000100)
      add r9.w, r6.w, l(1.000000)
      div r8.z, r8.z, r9.w
      sqrt r8.z, r8.z
      mul r9.w, r8.z, l(0.250000)
      ishr r11.w, r6.x, l(1)
      iadd r11.w, r11.w, l(0x1fbd1df5)
      mad r8.z, r11.w, l(3.000000), r8.z
      mul r8.z, r8.z, r9.w
      div r6.z, r8.z, r6.z
      add r6.z, r6.z, r6.x
      div r6.x, r6.x, r6.z
      sqrt r6.x, r6.x
      mul r6.x, r6.x, r6.y
      movc r6.x, r7.w, r6.x, r6.y
      mad r6.y, r8.w, r17.x, -r8.w
      mad r6.y, r6.y, r8.w, l(1.000000)
      mul r6.y, r6.y, r6.y
      mul r6.y, r6.y, l(3.14159274)
      div r6.y, r17.x, r6.y
      mul r6.x, r6.x, r6.y
      sqrt r6.y, r17.x
      add r6.z, -r6.y, l(1.000000)
      mad r7.w, r2.w, r6.z, r6.y
      mad r6.y, r0.y, r6.z, r6.y
      mul r2.w, r2.w, r6.y
      mad r2.w, r0.y, r7.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, r6.x
      add r6.x, -r9.z, l(1.000000)
      mul r6.y, r6.x, r6.x
      mul r6.y, r6.y, r6.y
      mul r6.z, r6.x, r6.y
      mul_sat r7.w, r13.y, l(50.000000)
      mad r6.x, -r6.y, r6.x, l(1.000000)
      mul r17.xyz, r13.xyzx, r6.xxxx
      mad r6.xyz, r7.wwww, r6.zzzz, r17.xyzx
      mul r2.w, r2.w, l(0.500000)
      mul r6.xyz, r6.xyzx, r2.wwww
      mul r15.xyz, r0.yyyy, r6.xyzx
      mul r6.xyz, r10.xyzx, r10.xyzx
      mad_sat r17.x, r1.x, l(0.500000), l(0.500000)
      add r17.y, -r10.w, l(1.000000)
      sample_l_indexable(texture2d)(float,float,float,float) r17.xyz, r17.xyxx, t0.xyzw, s0, l(0.000000)
      mul r16.xyz, r6.xyzx, r17.xyzx
      break
      case l(4)
      max r1.x, r10.y, l(0.020000)
      dp3 r2.w, r11.xyzx, r7.xyzx
      dp3 r6.x, r11.xyzx, -r2.xyzx
      dp3 r6.y, -r2.xyzx, r7.xyzx
      lt r6.z, l(0.000000), r5.w
      if_nz r6.z
        mad r7.w, -r5.w, r5.w, l(1.000000)
        sqrt r7.w, r7.w
        dp2 r8.z, r6.xxxx, r2.wwww
        add r8.w, -r6.y, r8.z
        ge r9.z, r8.w, r7.w
        if_nz r9.z
          mov r17.y, |r6.x|
          mov r17.x, l(1.000000)
        else
          mad r9.z, -r8.w, r8.w, l(1.000000)
          rsq r9.z, r9.z
          mul r9.z, r5.w, r9.z
          mad r9.w, -r8.w, r2.w, r6.x
          mul r11.w, r9.w, r9.z
          mul r12.w, r6.x, r6.x
          mad r12.w, r12.w, l(2.000000), l(-1.000000)
          mad r8.w, -r8.w, r6.y, r12.w
          mad r12.w, -r2.w, r2.w, l(1.000000)
          mad r12.w, -r6.x, r6.x, r12.w
          mad r12.w, -r6.y, r6.y, r12.w
          mad_sat r8.z, r8.z, r6.y, r12.w
          sqrt r8.z, r8.z
          mul r8.zw, r8.zzzw, r9.zzzz
          mul r12.w, r6.x, r8.z
          add r13.w, r12.w, r12.w
          mad r14.w, r2.w, r7.w, r6.x
          mad r9.z, r9.z, r9.w, r14.w
          mad r9.w, r6.y, r7.w, r8.w
          add r9.w, r9.w, l(1.000000)
          mul r15.w, r8.z, r9.w
          mul r16.w, r9.w, r9.z
          mul r17.z, r9.z, r13.w
          mul r12.w, r12.w, r9.z
          mul r12.w, r12.w, l(0.500000)
          mad r12.w, r15.w, l(-0.500000), r12.w
          mul r12.w, r12.w, r16.w
          mad r17.w, -r15.w, l(2.000000), r17.z
          mul r17.z, r17.w, r17.z
          mad r15.w, r15.w, r15.w, r17.z
          mul r17.z, r9.w, r9.w
          mad r9.w, r6.y, r7.w, r9.w
          mad r9.w, r9.w, l(-0.500000), l(-0.500000)
          mul r9.w, r9.w, r16.w
          mad r9.w, r14.w, r17.z, r9.w
          mad r9.z, r9.z, r9.w, r15.w
          add r9.w, r12.w, r12.w
          mul r14.w, r12.w, r12.w
          mad r14.w, r9.z, r9.z, r14.w
          div r9.w, r9.w, r14.w
          mul r9.z, r9.z, r9.w
          mad r9.w, -r9.w, r12.w, l(1.000000)
          mul r8.z, r8.z, r9.z
          mad r8.z, r9.w, r11.w, r8.z
          mul r9.z, r13.w, r9.z
          mad r8.w, r9.w, r8.w, r9.z
          mad r8.z, r2.w, r7.w, r8.z
          mad r7.w, r6.y, r7.w, r8.w
          mad r8.w, r7.w, l(2.000000), l(2.000000)
          rsq r8.w, r8.w
          add r8.z, r6.x, r8.z
          mul_sat r17.x, r8.w, r8.z
          mad_sat r17.y, r8.w, r7.w, r8.w
        endif
      else
        mad r7.w, r6.y, l(2.000000), l(2.000000)
        rsq r7.w, r7.w
        add r2.w, r2.w, r6.x
        mul_sat r17.x, r7.w, r2.w
        mad_sat r17.y, r7.w, r6.y, r7.w
      endif
      add r2.w, |r6.x|, l(0.000010)
      min r2.w, r2.w, l(1.000000)
      add r6.x, -r17.y, l(1.000000)
      mul r6.y, r6.x, r6.x
      mul r6.y, r6.y, r6.y
      mul r7.w, r6.x, r6.y
      mad r6.x, -r6.y, r6.x, l(1.000000)
      mad r6.y, r6.x, l(0.040000), r7.w
      mul r8.z, r10.x, r6.y
      mul r1.x, r1.x, r1.x
      mul r8.w, r1.x, r1.x
      lt r9.z, l(0.000000), r8.y
      mul r9.w, r8.y, r8.y
      mad r11.w, r17.y, l(3.600000), l(0.400000)
      div r9.w, r9.w, r11.w
      mad r1.x, r1.x, r1.x, r9.w
      min r1.x, r1.x, l(1.000000)
      movc r18.x, r9.z, r1.x, r8.w
      mul r1.x, r5.w, l(0.250000)
      ishr r8.w, r18.x, l(1)
      iadd r8.w, r8.w, l(0x1fbd1df5)
      mad r8.w, r8.w, l(3.000000), r5.w
      mul r8.w, r1.x, r8.w
      add r11.w, r17.y, l(0.001000)
      div r8.w, r8.w, r11.w
      add r19.x, r8.w, r18.x
      div r19.y, r18.x, r19.x
      mov r18.yw, l(0,1.000000,0,1.000000)
      movc r17.zw, r6.zzzz, r19.xxxy, r18.xxxy
      lt r8.w, r6.w, l(1.000000)
      add r12.w, -r6.w, l(1.000100)
      add r13.w, r6.w, l(1.000000)
      div r12.w, r12.w, r13.w
      sqrt r12.w, r12.w
      mul r13.w, r12.w, l(0.250000)
      ishr r14.w, r17.z, l(1)
      iadd r14.w, r14.w, l(0x1fbd1df5)
      mad r14.w, r14.w, l(3.000000), r12.w
      mul r14.w, r13.w, r14.w
      div r14.w, r14.w, r11.w
      add r14.w, r14.w, r17.z
      div r14.w, r17.z, r14.w
      sqrt r14.w, r14.w
      mul r14.w, r14.w, r17.w
      movc r14.w, r8.w, r14.w, r17.w
      mad r15.w, r17.x, r18.x, -r17.x
      mad r15.w, r15.w, r17.x, l(1.000000)
      mul r15.w, r15.w, r15.w
      mul r15.w, r15.w, l(3.14159274)
      div r15.w, r18.x, r15.w
      mul r14.w, r14.w, r15.w
      mul r15.w, r17.y, r17.y
      mad r15.w, r15.w, l(4.000000), l(0.000010)
      rcp r15.w, r15.w
      mul r14.w, r0.y, r14.w
      mul r14.w, r15.w, r14.w
      mad r6.y, -r6.y, r10.x, l(1.000000)
      mul r6.y, r0.y, r6.y
      mul r17.yzw, r6.yyyy, r12.xxyz
      mul r14.xyz, r17.yzwy, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mul r15.w, r3.z, r3.z
      mad r9.w, r3.z, r3.z, r9.w
      min r9.w, r9.w, l(1.000000)
      movc r18.z, r9.z, r9.w, r15.w
      ishr r9.z, r18.z, l(1)
      iadd r9.z, r9.z, l(0x1fbd1df5)
      mad r9.z, r9.z, l(3.000000), r5.w
      mul r1.x, r1.x, r9.z
      div r1.x, r1.x, r11.w
      add r18.x, r1.x, r18.z
      div r18.y, r18.z, r18.x
      movc r9.zw, r6.zzzz, r18.xxxy, r18.zzzw
      ishr r1.x, r9.z, l(1)
      iadd r1.x, r1.x, l(0x1fbd1df5)
      mad r1.x, r1.x, l(3.000000), r12.w
      mul r1.x, r1.x, r13.w
      div r1.x, r1.x, r11.w
      add r1.x, r1.x, r9.z
      div r1.x, r9.z, r1.x
      sqrt r1.x, r1.x
      mul r1.x, r1.x, r9.w
      movc r1.x, r8.w, r1.x, r9.w
      mad r6.z, r17.x, r18.z, -r17.x
      mad r6.z, r6.z, r17.x, l(1.000000)
      mul r6.z, r6.z, r6.z
      mul r6.z, r6.z, l(3.14159274)
      div r6.z, r18.z, r6.z
      mul r1.x, r1.x, r6.z
      sqrt r6.z, r18.z
      add r8.w, -r6.z, l(1.000000)
      mad r9.z, r2.w, r8.w, r6.z
      mad r6.z, r0.y, r8.w, r6.z
      mul r2.w, r2.w, r6.z
      mad r2.w, r0.y, r9.z, r2.w
      rcp r2.w, r2.w
      mul r1.x, r1.x, r2.w
      mul_sat r2.w, r13.y, l(50.000000)
      mul r17.xyz, r13.xyzx, r6.xxxx
      mad r17.xyz, r2.wwww, r7.wwww, r17.xyzx
      mul r1.x, r1.x, l(0.500000)
      mul r17.xyz, r17.xyzx, r1.xxxx
      mul r6.xyz, r6.yyyy, r17.xyzx
      mad r15.xyz, r14.wwww, r8.zzzz, r6.xyzx
      mov r16.xyz, l(0,0,0,0)
      break
      case l(5)
      dp3 r1.x, r11.xyzx, r7.xyzx
      dp3 r2.w, r11.xyzx, -r2.xyzx
      dp3 r6.x, -r2.xyzx, r7.xyzx
      lt r6.y, l(0.000000), r5.w
      if_nz r6.y
        mad r6.z, -r5.w, r5.w, l(1.000000)
        sqrt r6.z, r6.z
        dp2 r7.w, r2.wwww, r1.xxxx
        add r8.z, -r6.x, r7.w
        ge r8.w, r8.z, r6.z
        if_nz r8.w
          mov r8.w, l(1.000000)
          mov r9.z, |r2.w|
        else
          mad r9.w, -r8.z, r8.z, l(1.000000)
          rsq r9.w, r9.w
          mul r9.w, r5.w, r9.w
          mad r11.w, -r8.z, r1.x, r2.w
          mul r12.w, r9.w, r11.w
          mul r13.w, r2.w, r2.w
          mad r13.w, r13.w, l(2.000000), l(-1.000000)
          mad r8.z, -r8.z, r6.x, r13.w
          mul r8.z, r8.z, r9.w
          mad r13.w, -r1.x, r1.x, l(1.000000)
          mad r13.w, -r2.w, r2.w, r13.w
          mad r13.w, -r6.x, r6.x, r13.w
          mad_sat r7.w, r7.w, r6.x, r13.w
          sqrt r7.w, r7.w
          mul r7.w, r7.w, r9.w
          mul r13.w, r2.w, r7.w
          add r14.w, r13.w, r13.w
          mad r15.w, r1.x, r6.z, r2.w
          mad r9.w, r9.w, r11.w, r15.w
          mad r11.w, r6.x, r6.z, r8.z
          add r11.w, r11.w, l(1.000000)
          mul r16.w, r7.w, r11.w
          mul r17.x, r9.w, r11.w
          mul r17.y, r9.w, r14.w
          mul r13.w, r13.w, r9.w
          mul r13.w, r13.w, l(0.500000)
          mad r13.w, r16.w, l(-0.500000), r13.w
          mul r13.w, r13.w, r17.x
          mad r17.z, -r16.w, l(2.000000), r17.y
          mul r17.y, r17.z, r17.y
          mad r16.w, r16.w, r16.w, r17.y
          mul r17.y, r11.w, r11.w
          mad r11.w, r6.x, r6.z, r11.w
          mad r11.w, r11.w, l(-0.500000), l(-0.500000)
          mul r11.w, r11.w, r17.x
          mad r11.w, r15.w, r17.y, r11.w
          mad r9.w, r9.w, r11.w, r16.w
          add r11.w, r13.w, r13.w
          mul r15.w, r13.w, r13.w
          mad r15.w, r9.w, r9.w, r15.w
          div r11.w, r11.w, r15.w
          mul r9.w, r9.w, r11.w
          mad r11.w, -r11.w, r13.w, l(1.000000)
          mul r7.w, r7.w, r9.w
          mad r7.w, r11.w, r12.w, r7.w
          mul r9.w, r14.w, r9.w
          mad r8.z, r11.w, r8.z, r9.w
          mad r7.w, r1.x, r6.z, r7.w
          mad r6.z, r6.x, r6.z, r8.z
          mad r8.z, r6.z, l(2.000000), l(2.000000)
          rsq r8.z, r8.z
          add r7.w, r2.w, r7.w
          mul_sat r8.w, r8.z, r7.w
          mad_sat r9.z, r8.z, r6.z, r8.z
        endif
      else
        mad r6.z, r6.x, l(2.000000), l(2.000000)
        rsq r6.z, r6.z
        add r1.x, r1.x, r2.w
        mul_sat r8.w, r6.z, r1.x
        mad_sat r9.z, r6.z, r6.x, r6.z
      endif
      add r1.x, |r2.w|, l(0.000010)
      min r1.x, r1.x, l(1.000000)
      mul r6.x, r10.w, l(10.000000)
      mad r2.w, r10.x, l(255.000000), l(0.500000)
      ftou r17.y, r2.w
      mov r17.xzw, l(3,0,0,0)
      ld_indexable(texture2d)(float,float,float,float) r17.xyz, r17.xyzw, t9.xyzw
      dp2_sat r2.w, r17.xxxx, r0.zzzz
      max r2.w, r2.w, l(0.020000)
      dp2_sat r6.z, r17.yyyy, r0.zzzz
      mov_sat r6.x, r6.x
      add r2.w, r2.w, l(-1.000000)
      mad r2.w, r6.x, r2.w, l(1.000000)
      add r6.z, r6.z, l(-1.000000)
      mad r6.x, r6.x, r6.z, l(1.000000)
      mul r6.z, r9.z, r9.z
      dp2 r6.z, r6.zzzz, r0.zzzz
      add r6.z, r6.z, l(-0.500000)
      add r7.w, -r1.x, l(1.000000)
      mul r8.z, r7.w, r7.w
      mul r8.z, r8.z, r8.z
      mul r7.w, r7.w, r8.z
      mad r7.w, r6.z, r7.w, l(1.000000)
      add r8.z, -r0.y, l(1.000000)
      mul r9.w, r8.z, r8.z
      mul r9.w, r9.w, r9.w
      mul r8.z, r8.z, r9.w
      mad r6.z, r6.z, r8.z, l(1.000000)
      mul r6.z, r7.w, r6.z
      mul r6.z, r6.z, l(0.318309873)
      mul r17.xyw, r6.zzzz, r12.xyxz
      mul r14.xyz, r0.yyyy, r17.xywx
      mul r2.w, r2.w, r2.w
      mul r6.z, r2.w, r2.w
      mul r6.x, r6.x, r6.x
      mul r7.w, r6.x, r6.x
      lt r8.z, l(0.000000), r8.y
      mul r9.w, r8.y, r8.y
      mad r11.w, r9.z, l(3.600000), l(0.400000)
      div r9.w, r9.w, r11.w
      mad r2.w, r2.w, r2.w, r9.w
      min r2.w, r2.w, l(1.000000)
      movc r18.x, r8.z, r2.w, r6.z
      mul r2.w, r5.w, l(0.250000)
      ishr r6.z, r18.x, l(1)
      iadd r6.z, r6.z, l(0x1fbd1df5)
      mad r6.z, r6.z, l(3.000000), r5.w
      mul r6.z, r2.w, r6.z
      add r11.w, r9.z, l(0.001000)
      div r6.z, r6.z, r11.w
      add r17.x, r6.z, r18.x
      div r17.y, r18.x, r17.x
      mov r18.yw, l(0,1.000000,0,1.000000)
      movc r17.xy, r6.yyyy, r17.xyxx, r18.xyxx
      lt r6.z, r6.w, l(1.000000)
      add r12.w, -r6.w, l(1.000100)
      add r13.w, r6.w, l(1.000000)
      div r12.w, r12.w, r13.w
      sqrt r12.w, r12.w
      mul r13.w, r12.w, l(0.250000)
      ishr r14.w, r17.x, l(1)
      iadd r14.w, r14.w, l(0x1fbd1df5)
      mad r14.w, r14.w, l(3.000000), r12.w
      mul r14.w, r13.w, r14.w
      div r14.w, r14.w, r11.w
      add r14.w, r14.w, r17.x
      div r14.w, r17.x, r14.w
      sqrt r14.w, r14.w
      mul r14.w, r14.w, r17.y
      movc r14.w, r6.z, r14.w, r17.y
      mad r6.x, r6.x, r6.x, r9.w
      min r6.x, r6.x, l(1.000000)
      movc r18.z, r8.z, r6.x, r7.w
      ishr r6.x, r18.z, l(1)
      iadd r6.x, r6.x, l(0x1fbd1df5)
      mad r6.x, r6.x, l(3.000000), r5.w
      mul r2.w, r2.w, r6.x
      div r2.w, r2.w, r11.w
      add r17.x, r2.w, r18.z
      div r17.y, r18.z, r17.x
      movc r6.xy, r6.yyyy, r17.xyxx, r18.zwzz
      ishr r2.w, r6.x, l(1)
      iadd r2.w, r2.w, l(0x1fbd1df5)
      mad r2.w, r2.w, l(3.000000), r12.w
      mul r2.w, r2.w, r13.w
      div r2.w, r2.w, r11.w
      add r2.w, r2.w, r6.x
      div r2.w, r6.x, r2.w
      sqrt r2.w, r2.w
      mul r2.w, r2.w, r6.y
      movc r2.w, r6.z, r2.w, r6.y
      mad r6.xy, r8.wwww, r18.xzxx, -r8.wwww
      mad r6.xy, r6.xyxx, r8.wwww, l(1.000000, 1.000000, 0.000000, 0.000000)
      mul r6.xy, r6.xyxx, r6.xyxx
      mul r6.xy, r6.xyxx, l(3.14159274, 3.14159274, 0.000000, 0.000000)
      div r6.xy, r18.xzxx, r6.xyxx
      mul r6.x, r14.w, r6.x
      mad r2.w, r6.y, r2.w, -r6.x
      mad r2.w, r17.z, r2.w, r6.x
      mad r6.x, r1.x, r3.w, r3.z
      mad r3.w, r0.y, r3.w, r3.z
      mul r1.x, r1.x, r3.w
      mad r1.x, r0.y, r6.x, r1.x
      rcp r1.x, r1.x
      mul r1.x, r1.x, r2.w
      add r2.w, -r9.z, l(1.000000)
      mul r3.w, r2.w, r2.w
      mul r3.w, r3.w, r3.w
      mul r6.x, r2.w, r3.w
      mul_sat r6.y, r13.y, l(50.000000)
      mad r2.w, -r3.w, r2.w, l(1.000000)
      mul r17.xyz, r13.xyzx, r2.wwww
      mad r6.xyz, r6.yyyy, r6.xxxx, r17.xyzx
      mul r1.x, r1.x, l(0.500000)
      mul r6.xyz, r6.xyzx, r1.xxxx
      mul r15.xyz, r0.yyyy, r6.xyzx
      mov r16.xyz, l(0,0,0,0)
      break
      case l(6)
      dp3 r1.x, r11.xyzx, r7.xyzx
      dp3 r2.w, r11.xyzx, -r2.xyzx
      dp3 r3.w, -r2.xyzx, r7.xyzx
      lt r6.x, l(0.000000), r5.w
      if_nz r6.x
        mad r6.y, -r5.w, r5.w, l(1.000000)
        sqrt r6.y, r6.y
        dp2 r6.z, r2.wwww, r1.xxxx
        add r7.w, -r3.w, r6.z
        ge r8.z, r7.w, r6.y
        if_nz r8.z
          mov r8.z, l(1.000000)
          mov r8.w, |r2.w|
        else
          mad r9.z, -r7.w, r7.w, l(1.000000)
          rsq r9.z, r9.z
          mul r9.z, r5.w, r9.z
          mad r9.w, -r7.w, r1.x, r2.w
          mul r11.w, r9.w, r9.z
          mul r12.w, r2.w, r2.w
          mad r12.w, r12.w, l(2.000000), l(-1.000000)
          mad r7.w, -r7.w, r3.w, r12.w
          mul r7.w, r7.w, r9.z
          mad r12.w, -r1.x, r1.x, l(1.000000)
          mad r12.w, -r2.w, r2.w, r12.w
          mad r12.w, -r3.w, r3.w, r12.w
          mad_sat r6.z, r6.z, r3.w, r12.w
          sqrt r6.z, r6.z
          mul r6.z, r6.z, r9.z
          mul r12.w, r2.w, r6.z
          add r13.w, r12.w, r12.w
          mad r14.w, r1.x, r6.y, r2.w
          mad r9.z, r9.z, r9.w, r14.w
          mad r9.w, r3.w, r6.y, r7.w
          add r9.w, r9.w, l(1.000000)
          mul r15.w, r6.z, r9.w
          mul r16.w, r9.w, r9.z
          mul r17.x, r9.z, r13.w
          mul r12.w, r12.w, r9.z
          mul r12.w, r12.w, l(0.500000)
          mad r12.w, r15.w, l(-0.500000), r12.w
          mul r12.w, r12.w, r16.w
          mad r17.y, -r15.w, l(2.000000), r17.x
          mul r17.x, r17.y, r17.x
          mad r15.w, r15.w, r15.w, r17.x
          mul r17.x, r9.w, r9.w
          mad r9.w, r3.w, r6.y, r9.w
          mad r9.w, r9.w, l(-0.500000), l(-0.500000)
          mul r9.w, r9.w, r16.w
          mad r9.w, r14.w, r17.x, r9.w
          mad r9.z, r9.z, r9.w, r15.w
          add r9.w, r12.w, r12.w
          mul r14.w, r12.w, r12.w
          mad r14.w, r9.z, r9.z, r14.w
          div r9.w, r9.w, r14.w
          mul r9.z, r9.z, r9.w
          mad r9.w, -r9.w, r12.w, l(1.000000)
          mul r6.z, r6.z, r9.z
          mad r6.z, r9.w, r11.w, r6.z
          mul r9.z, r13.w, r9.z
          mad r7.w, r9.w, r7.w, r9.z
          mad r6.z, r1.x, r6.y, r6.z
          mad r6.y, r3.w, r6.y, r7.w
          mad r7.w, r6.y, l(2.000000), l(2.000000)
          rsq r7.w, r7.w
          add r6.z, r2.w, r6.z
          mul_sat r8.z, r7.w, r6.z
          mad_sat r8.w, r7.w, r6.y, r7.w
        endif
      else
        mad r6.y, r3.w, l(2.000000), l(2.000000)
        rsq r6.y, r6.y
        add r6.z, r1.x, r2.w
        mul_sat r8.z, r6.y, r6.z
        mad_sat r8.w, r6.y, r3.w, r6.y
      endif
      add r2.w, |r2.w|, l(0.000010)
      min r2.w, r2.w, l(1.000000)
      mul r17.xyz, r0.yyyy, r12.xyzx
      mul r14.xyz, r17.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mul r6.y, r3.z, r3.z
      lt r6.z, l(0.000000), r8.y
      mul r7.w, r8.y, r8.y
      mad r9.z, r8.w, l(3.600000), l(0.400000)
      div r7.w, r7.w, r9.z
      mad r7.w, r3.z, r3.z, r7.w
      min r7.w, r7.w, l(1.000000)
      movc r17.x, r6.z, r7.w, r6.y
      mul r6.y, r5.w, l(0.250000)
      ishr r6.z, r17.x, l(1)
      iadd r6.z, r6.z, l(0x1fbd1df5)
      mad r6.z, r6.z, l(3.000000), r5.w
      mul r6.y, r6.z, r6.y
      add r6.z, r8.w, l(0.001000)
      div r6.y, r6.y, r6.z
      add r18.x, r6.y, r17.x
      div r18.y, r17.x, r18.x
      mov r17.y, l(1.000000)
      movc r6.xy, r6.xxxx, r18.xyxx, r17.xyxx
      lt r7.w, r6.w, l(1.000000)
      add r9.z, -r6.w, l(1.000100)
      add r9.w, r6.w, l(1.000000)
      div r9.z, r9.z, r9.w
      sqrt r9.z, r9.z
      mul r9.w, r9.z, l(0.250000)
      ishr r11.w, r6.x, l(1)
      iadd r11.w, r11.w, l(0x1fbd1df5)
      mad r9.z, r11.w, l(3.000000), r9.z
      mul r9.z, r9.z, r9.w
      div r6.z, r9.z, r6.z
      add r6.z, r6.z, r6.x
      div r6.x, r6.x, r6.z
      sqrt r6.x, r6.x
      mul r6.x, r6.x, r6.y
      movc r6.x, r7.w, r6.x, r6.y
      mad r6.y, r8.z, r17.x, -r8.z
      mad r6.y, r6.y, r8.z, l(1.000000)
      mul r6.y, r6.y, r6.y
      mul r6.y, r6.y, l(3.14159274)
      div r6.y, r17.x, r6.y
      mul r6.x, r6.x, r6.y
      sqrt r6.y, r17.x
      add r6.z, -r6.y, l(1.000000)
      mad r7.w, r2.w, r6.z, r6.y
      mad r6.y, r0.y, r6.z, r6.y
      mul r2.w, r2.w, r6.y
      mad r2.w, r0.y, r7.w, r2.w
      rcp r2.w, r2.w
      mul r2.w, r2.w, r6.x
      add r6.x, -r8.w, l(1.000000)
      mul r6.y, r6.x, r6.x
      mul r6.y, r6.y, r6.y
      mul r6.z, r6.x, r6.y
      mul_sat r7.w, r13.y, l(50.000000)
      mad r6.x, -r6.y, r6.x, l(1.000000)
      mul r17.xyz, r13.xyzx, r6.xxxx
      mad r6.xyz, r7.wwww, r6.zzzz, r17.xyzx
      mul r2.w, r2.w, l(0.500000)
      mul r6.xyz, r6.xyzx, r2.wwww
      mul r15.xyz, r0.yyyy, r6.xyzx
      mul r6.xyz, r10.xyzx, r10.xyzx
      add r1.x, -r1.x, l(0.500000)
      mul_sat r1.x, r1.x, l(0.444444448)
      mov_sat r3.w, -r3.w
      mul r2.w, r3.w, r3.w
      mad r2.w, r2.w, l(-0.640000), l(1.000000)
      mul r2.w, r2.w, r2.w
      mul r2.w, r2.w, l(3.14159274)
      div r2.w, l(0.360000), r2.w
      mul r1.x, r1.x, r2.w
      mul r16.xyz, r6.xyzx, r1.xxxx
      break
      case l(7)
      min r0.z, r0.z, l(1.000000)
      dp3 r1.x, -r2.xyzx, r7.xyzx
      dp3 r2.w, r11.xyzx, r7.xyzx
      dp3 r3.w, r11.xyzx, -r2.xyzx
      mad r6.x, |r3.w|, l(-0.156583), l(1.57079637)
      add r6.y, -|r3.w|, l(1.000000)
      sqrt r6.y, r6.y
      mul r6.z, r6.y, r6.x
      ge r7.w, r3.w, l(0.000000)
      mad r6.x, -r6.x, r6.y, l(3.14159274)
      movc r6.x, r7.w, r6.z, r6.x
      mad r6.y, |r2.w|, l(-0.156583), l(1.57079637)
      add r6.z, -|r2.w|, l(1.000000)
      sqrt r7.w, r6.z
      mul r8.z, r6.y, r7.w
      ge r8.w, r2.w, l(0.000000)
      mad r6.y, -r6.y, r7.w, l(3.14159274)
      movc r6.y, r8.w, r8.z, r6.y
      add r6.xy, -r6.xyxx, l(1.57079637, 1.57079637, 0.000000, 0.000000)
      add r6.x, -r6.y, r6.x
      mul r6.x, |r6.x|, l(0.500000)
      sincos null, r6.x, r6.x
      mad r17.xyz, -r2.wwww, r11.xyzx, r7.xyzx
      mad r18.xyz, -r3.wwww, r11.xyzx, -r2.xyzx
      dp3 r6.y, r17.xyzx, r18.xyzx
      dp3 r7.w, r17.xyzx, r17.xyzx
      dp3 r8.z, r18.xyzx, r18.xyzx
      mad r7.w, r7.w, r8.z, l(0.000100)
      rsq r7.w, r7.w
      mul r6.y, r6.y, r7.w
      mad r17.xyz, r6.yyyy, l(0.500000, -3.650000, 17.000000, 0.000000), l(0.500000, -3.980000, -16.780001, 0.000000)
      mov_sat r17.x, r17.x
      sqrt r7.w, r17.x
      div r9.zw, l(0.000000, 0.000000, 1.190000, 0.800000), r6.xxxx
      mad r8.w, r6.x, l(0.360000), r9.z
      mul r0.z, r0.z, r0.z
      mul r19.xyz, r0.zzzz, l(0.500000, 1.25331414, 5.01325655, 0.000000)
      add r9.z, r0.z, r0.z
      mul r11.w, r7.w, l(0.997551)
      mad r12.w, -r3.w, r3.w, l(1.000000)
      sqrt r12.w, r12.w
      mul r13.w, r3.w, l(-0.0699428469)
      mad r11.w, r11.w, r12.w, r13.w
      mul r0.z, r7.w, r0.z
      mul r17.xw, r0.zzzz, l(1.41421354, 0.000000, 0.000000, 3.54490757)
      add r0.z, r2.w, r3.w
      mad r2.w, -r11.w, l(-0.139885694), r0.z
      mul r2.w, r2.w, r2.w
      mul r2.w, r2.w, l(-0.500000)
      mul r3.w, r17.x, r17.x
      div r2.w, r2.w, r3.w
      mul r2.w, r2.w, l(1.442695)
      exp r2.w, r2.w
      div r2.w, r2.w, r17.w
      mul r2.w, r7.w, r2.w
      mad_sat r1.x, r1.x, l(0.500000), l(0.500000)
      sqrt r1.x, r1.x
      add r1.x, -r1.x, l(1.000000)
      mul r3.w, r1.x, r1.x
      mul r3.w, r3.w, r3.w
      mul r1.x, r1.x, r3.w
      mad r1.x, r1.x, l(0.953479409), l(0.0465205684)
      mul r1.x, r2.w, r1.x
      mul r1.x, r4.w, r1.x
      add r17.xw, r0.zzzz, l(-0.035000, 0.000000, 0.000000, -0.140000)
      mul r17.xw, r17.xxxw, r17.xxxw
      mul r17.xw, r17.xxxw, l(-0.500000, 0.000000, 0.000000, -0.500000)
      mul r0.z, r19.x, r19.x
      div r0.z, r17.x, r0.z
      mul r0.z, r0.z, l(1.442695)
      exp r0.z, r0.z
      div r0.z, r0.z, r19.y
      div r2.w, l(1.000000, 1.000000, 1.000000, 1.000000), r8.w
      mad r3.w, -r6.y, l(0.800000), l(0.600000)
      mad r3.w, r2.w, r3.w, l(1.000000)
      mul r3.w, r3.w, r7.w
      mad r6.y, -r3.w, r3.w, l(1.000000)
      max r6.y, r6.y, l(0.000000)
      sqrt r6.y, r6.y
      mad r6.y, -r6.x, r6.y, l(1.000000)
      mul r7.w, r6.y, r6.y
      mul r7.w, r7.w, r7.w
      mul r6.y, r6.y, r7.w
      mad r6.y, r6.y, l(0.953479409), l(0.0465205684)
      add r6.y, -r6.y, l(1.000000)
      mul r6.y, r6.y, r6.y
      mul r2.w, r2.w, r3.w
      mad r2.w, -r2.w, r2.w, l(1.000000)
      sqrt r2.w, r2.w
      mul r2.w, r2.w, l(0.500000)
      div r2.w, r2.w, r6.x
      log r19.xyw, r4.xyxz
      mul r20.xyz, r2.wwww, r19.xywx
      exp r20.xyz, r20.xyzx
      mul r17.xy, r17.yzyy, l(1.442695, 1.442695, 0.000000, 0.000000)
      exp r17.xy, r17.xyxx
      mul r0.z, r0.z, r17.x
      mul r0.z, r6.y, r0.z
      mul r20.xyz, r20.xyzx, r0.zzzz
      mad r20.xyz, r1.xxxx, l(0.500000, 0.500000, 0.500000, 0.000000), r20.xyzx
      mul r0.z, r9.z, r9.z
      div r0.z, r17.w, r0.z
      mul r0.z, r0.z, l(1.442695)
      exp r0.z, r0.z
      div r0.z, r0.z, r19.z
      mad r1.x, -r6.x, l(0.500000), l(1.000000)
      mul r2.w, r1.x, r1.x
      mul r2.w, r2.w, r2.w
      mul r1.x, r1.x, r2.w
      mad r1.x, r1.x, l(0.953479409), l(0.0465205684)
      add r2.w, -r1.x, l(1.000000)
      mul r2.w, r2.w, r2.w
      mul r1.x, r1.x, r2.w
      mul r17.xzw, r9.wwww, r19.xxyw
      exp r17.xzw, r17.xxzw
      mul r0.z, r17.y, r0.z
      mul r0.z, r1.x, r0.z
      mad r17.xyz, r0.zzzz, r17.xzwx, r20.xyzx
      rsq r0.z, r8.z
      mul r18.xyz, r0.zzzz, r18.xyzx
      dp3 r0.z, r18.xyzx, r7.xyzx
      add r0.z, r0.z, l(1.000000)
      mul_sat r0.z, r0.z, l(0.250000)
      add r1.x, -r0.z, r6.z
      mad r0.z, r1.x, l(0.330000), r0.z
      mul r0.z, r0.z, r0.w
      mul r0.z, r0.z, l(0.318309873)
      dp3 r0.w, r4.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
      div r6.xyz, r4.xyzx, r0.wwww
      add r0.w, -r9.y, l(1.000000)
      log r6.xyz, r6.xyzx
      mul r6.xyz, r0.wwww, r6.xyzx
      exp r6.xyz, r6.xyzx
      sqrt r4.xyz, r4.xyzx
      mul r4.xyz, r0.zzzz, r4.xyzx
      mad r4.xyz, r4.xyzx, r6.xyzx, r17.xyzx
      min r16.xyz, -r4.xyzx, l(0.000000, 0.000000, 0.000000, 0.000000)
      mov r14.xyz, l(0,0,0,0)
      mov r15.xyz, l(0,0,0,0)
      mov r16.xyz, -r16.xyzx
      break
      case l(8)
      mov_sat r10.xyzw, r10.xyzw
      dp3 r0.z, r11.xyzx, r7.xyzx
      dp3 r0.w, r11.xyzx, -r2.xyzx
      dp3 r1.x, -r2.xyzx, r7.xyzx
      lt r2.w, l(0.000000), r5.w
      if_nz r2.w
        mad r3.w, -r5.w, r5.w, l(1.000000)
        sqrt r3.w, r3.w
        dp2 r4.x, r0.wwww, r0.zzzz
        add r4.y, -r1.x, r4.x
        ge r4.z, r4.y, r3.w
        if_nz r4.z
          mov r4.z, l(1.000000)
          mov r6.x, |r0.w|
        else
          mad r6.y, -r4.y, r4.y, l(1.000000)
          rsq r6.y, r6.y
          mul r6.y, r5.w, r6.y
          mad r6.z, -r4.y, r0.z, r0.w
          mul r7.w, r6.z, r6.y
          mul r8.z, r0.w, r0.w
          mad r8.z, r8.z, l(2.000000), l(-1.000000)
          mad r4.y, -r4.y, r1.x, r8.z
          mad r8.z, -r0.z, r0.z, l(1.000000)
          mad r8.z, -r0.w, r0.w, r8.z
          mad r8.z, -r1.x, r1.x, r8.z
          mad_sat r4.x, r4.x, r1.x, r8.z
          sqrt r4.x, r4.x
          mul r4.xy, r4.xyxx, r6.yyyy
          mul r8.z, r0.w, r4.x
          add r8.w, r8.z, r8.z
          mad r9.z, r0.z, r3.w, r0.w
          mad r6.y, r6.y, r6.z, r9.z
          mad r6.z, r1.x, r3.w, r4.y
          add r6.z, r6.z, l(1.000000)
          mul r9.w, r4.x, r6.z
          mul r11.w, r6.z, r6.y
          mul r12.w, r6.y, r8.w
          mul r8.z, r8.z, r6.y
          mul r8.z, r8.z, l(0.500000)
          mad r8.z, r9.w, l(-0.500000), r8.z
          mul r8.z, r8.z, r11.w
          mad r13.w, -r9.w, l(2.000000), r12.w
          mul r12.w, r12.w, r13.w
          mad r9.w, r9.w, r9.w, r12.w
          mul r12.w, r6.z, r6.z
          mad r6.z, r1.x, r3.w, r6.z
          mad r6.z, r6.z, l(-0.500000), l(-0.500000)
          mul r6.z, r6.z, r11.w
          mad r6.z, r9.z, r12.w, r6.z
          mad r6.y, r6.y, r6.z, r9.w
          add r6.z, r8.z, r8.z
          mul r9.z, r8.z, r8.z
          mad r9.z, r6.y, r6.y, r9.z
          div r6.z, r6.z, r9.z
          mul r6.y, r6.y, r6.z
          mad r6.z, -r6.z, r8.z, l(1.000000)
          mul r4.x, r4.x, r6.y
          mad r4.x, r6.z, r7.w, r4.x
          mul r6.y, r8.w, r6.y
          mad r4.y, r6.z, r4.y, r6.y
          mad r4.x, r0.z, r3.w, r4.x
          mad r3.w, r1.x, r3.w, r4.y
          mad r4.y, r3.w, l(2.000000), l(2.000000)
          rsq r4.y, r4.y
          add r4.x, r0.w, r4.x
          mul_sat r4.z, r4.y, r4.x
          mad_sat r6.x, r4.y, r3.w, r4.y
        endif
      else
        mad r3.w, r1.x, l(2.000000), l(2.000000)
        rsq r3.w, r3.w
        add r0.z, r0.w, r0.z
        mul_sat r4.z, r3.w, r0.z
        mad_sat r6.x, r3.w, r1.x, r3.w
      endif
      add r0.z, |r0.w|, l(0.000010)
      min r0.z, r0.z, l(1.000000)
      mul r0.w, r3.z, r3.z
      lt r1.x, l(0.000000), r8.y
      mul r3.w, r8.y, r8.y
      mad r4.x, r6.x, l(3.600000), l(0.400000)
      div r3.w, r3.w, r4.x
      mad r3.w, r3.z, r3.z, r3.w
      min r3.w, r3.w, l(1.000000)
      movc r4.x, r1.x, r3.w, r0.w
      mul r1.x, r5.w, l(0.250000)
      ishr r3.w, r4.x, l(1)
      iadd r3.w, r3.w, l(0x1fbd1df5)
      mad r3.w, r3.w, l(3.000000), r5.w
      mul r1.x, r1.x, r3.w
      add r3.w, r6.x, l(0.001000)
      div r1.x, r1.x, r3.w
      add r17.x, r1.x, r4.x
      div r17.y, r4.x, r17.x
      mov r4.y, l(1.000000)
      movc r6.yz, r2.wwww, r17.xxyx, r4.xxyx
      lt r1.x, r6.w, l(1.000000)
      add r2.w, -r6.w, l(1.000100)
      add r4.y, r6.w, l(1.000000)
      div r2.w, r2.w, r4.y
      sqrt r2.w, r2.w
      mul r4.y, r2.w, l(0.250000)
      ishr r7.w, r6.y, l(1)
      iadd r7.w, r7.w, l(0x1fbd1df5)
      mad r2.w, r7.w, l(3.000000), r2.w
      mul r2.w, r2.w, r4.y
      div r2.w, r2.w, r3.w
      add r2.w, r2.w, r6.y
      div r2.w, r6.y, r2.w
      sqrt r2.w, r2.w
      mul r2.w, r2.w, r6.z
      movc r1.x, r1.x, r2.w, r6.z
      mad r2.w, r4.z, r4.x, -r4.z
      mad r2.w, r2.w, r4.z, l(1.000000)
      mul r2.w, r2.w, r2.w
      mul r2.w, r2.w, l(3.14159274)
      div r2.w, r4.x, r2.w
      mul r1.x, r1.x, r2.w
      sqrt r2.w, r4.x
      add r3.w, -r2.w, l(1.000000)
      mad r4.x, r0.z, r3.w, r2.w
      mad r2.w, r0.y, r3.w, r2.w
      mul r2.w, r0.z, r2.w
      mad r2.w, r0.y, r4.x, r2.w
      rcp r2.w, r2.w
      mul r1.x, r1.x, r2.w
      add r2.w, -r6.x, l(1.000000)
      mul r3.w, r2.w, r2.w
      mul r3.w, r3.w, r3.w
      mul r4.x, r2.w, r3.w
      mul_sat r4.y, r13.y, l(50.000000)
      mad r2.w, -r3.w, r2.w, l(1.000000)
      mul r6.xyz, r13.xyzx, r2.wwww
      mad r6.xyz, r4.yyyy, r4.xxxx, r6.xyzx
      mul r1.x, r1.x, l(0.500000)
      mul r6.xyz, r6.xyzx, r1.xxxx
      mul r6.xyz, r0.yyyy, r6.xyzx
      mad r1.x, -r0.w, r4.z, r4.z
      mad r1.x, r1.x, r4.z, r0.w
      mul r3.w, r0.w, l(4.000000)
      mad r4.y, r0.w, l(4.000000), l(1.000000)
      mul r4.y, r4.y, l(3.14159274)
      rcp r4.y, r4.y
      mul r0.w, r0.w, r3.w
      mul r1.x, r1.x, r1.x
      div r0.w, r0.w, r1.x
      add r0.w, r0.w, l(1.000000)
      mul r0.w, r0.w, r4.y
      add r1.x, r0.z, r0.y
      mad r0.z, -r0.y, r0.z, r1.x
      mul r0.z, r0.z, l(4.000000)
      rcp r0.z, r0.z
      mul r1.x, r10.y, l(50.000000)
      min r1.x, r1.x, l(1.000000)
      mul r13.xyz, r10.xyzx, r2.wwww
      mad r4.xyz, r1.xxxx, r4.xxxx, r13.xyzx
      mul r0.z, r0.z, r0.w
      mul r0.z, r0.z, r0.y
      mul r13.xyz, r0.yyyy, r12.xyzx
      mul r14.xyz, r13.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mad r4.xyz, r0.zzzz, r4.xyzx, -r6.xyzx
      mad r15.xyz, r10.wwww, r4.xyzx, r6.xyzx
      mov r16.xyz, l(0,0,0,0)
      break
      case l(9)
      mad r0.zw, r10.yyyz, l(0.000000, 0.000000, 2.000000, 2.000000), l(0.000000, 0.000000, -1.000000, -1.000000)
      dp2 r1.x, l(1.000000, 1.000000, 0.000000, 0.000000), |r0.zwzz|
      add r4.z, -r1.x, l(1.000000)
      lt r1.x, r4.z, l(0.000000)
      add r6.xy, -|r0.wzww|, l(1.000000, 1.000000, 0.000000, 0.000000)
      ge r8.zw, r0.zzzw, l(0.000000, 0.000000, 0.000000, 0.000000)
      movc r8.zw, r8.zzzw, l(0,0,1.000000,1.000000), l(0,0,-1.000000,-1.000000)
      mul r6.xy, r6.xyxx, r8.zwzz
      movc r4.xy, r1.xxxx, r6.xyxx, r0.zwzz
      dp3 r0.z, r4.xyzx, r4.xyzx
      rsq r0.z, r0.z
      mul r4.xyz, r0.zzzz, r4.xyzx
      add r0.z, -r10.w, l(1.000000)
      mul r0.x, r0.x, r0.z
      mad r1.xyz, -r1.yzwy, r3.xxxx, -r4.xyzx
      mad r1.xyz, r0.xxxx, r1.xyzx, r4.xyzx
      dp3 r0.x, r1.xyzx, r1.xyzx
      rsq r0.x, r0.x
      mul r1.xyz, r0.xxxx, r1.xyzx
      dp3 r0.x, r11.xyzx, r7.xyzx
      dp3 r0.w, r11.xyzx, -r2.xyzx
      dp3 r1.w, -r2.xyzx, r7.xyzx
      lt r2.x, l(0.000000), r5.w
      if_nz r2.x
        mad r2.y, -r5.w, r5.w, l(1.000000)
        sqrt r2.y, r2.y
        dp2 r2.z, r0.wwww, r0.xxxx
        add r2.z, -r1.w, r2.z
        ge r2.w, r2.z, r2.y
        if_nz r2.w
          mov r6.y, |r0.w|
          mov r6.x, l(1.000000)
        else
          mad r2.w, -r2.z, r2.z, l(1.000000)
          rsq r2.w, r2.w
          mul r2.w, r2.w, r5.w
          mad r3.x, -r2.z, r0.x, r0.w
          mul r3.x, r2.w, r3.x
          dp2 r3.w, r0.wwww, r0.wwww
          add r3.w, r3.w, l(-1.000000)
          mad r2.z, -r2.z, r1.w, r3.w
          mul r2.z, r2.z, r2.w
          mad r2.w, r0.x, r2.y, r3.x
          mad r2.y, r1.w, r2.y, r2.z
          mad r2.z, r2.y, l(2.000000), l(2.000000)
          rsq r2.z, r2.z
          add r2.w, r0.w, r2.w
          mul_sat r6.x, r2.z, r2.w
          mad_sat r6.y, r2.z, r2.y, r2.z
        endif
      else
        mad r2.y, r1.w, l(2.000000), l(2.000000)
        rsq r2.y, r2.y
        add r0.x, r0.w, r0.x
        mul_sat r6.x, r2.y, r0.x
        mad_sat r6.y, r2.y, r1.w, r2.y
      endif
      mul r0.x, r4.w, l(0.080000)
      add r0.w, -r6.y, l(1.000000)
      mul r1.w, r0.w, r0.w
      mul r1.w, r1.w, r1.w
      mul r2.y, r0.w, r1.w
      mad r0.w, -r1.w, r0.w, l(1.000000)
      mad r0.x, r0.w, r0.x, r2.y
      mul r0.w, r3.z, r3.z
      lt r1.w, l(0.000000), r8.y
      mul r2.y, r8.y, r8.y
      mad r2.z, r6.y, l(3.600000), l(0.400000)
      div r2.y, r2.y, r2.z
      mad r2.y, r3.z, r3.z, r2.y
      min r2.y, r2.y, l(1.000000)
      movc r10.x, r1.w, r2.y, r0.w
      mul r0.w, r5.w, l(0.250000)
      ishr r1.w, r10.x, l(1)
      iadd r1.w, r1.w, l(0x1fbd1df5)
      mad r1.w, r1.w, l(3.000000), r5.w
      mul r0.w, r0.w, r1.w
      add r1.w, r6.y, l(0.001000)
      div r0.w, r0.w, r1.w
      add r11.x, r0.w, r10.x
      div r11.y, r10.x, r11.x
      mov r10.y, l(1.000000)
      movc r2.xy, r2.xxxx, r11.xyxx, r10.xyxx
      lt r0.w, r6.w, l(1.000000)
      add r2.z, -r6.w, l(1.000100)
      add r2.w, r6.w, l(1.000000)
      div r2.z, r2.z, r2.w
      sqrt r2.z, r2.z
      mul r2.w, r2.z, l(0.250000)
      ishr r3.x, r2.x, l(1)
      iadd r3.x, r3.x, l(0x1fbd1df5)
      mad r2.z, r3.x, l(3.000000), r2.z
      mul r2.z, r2.z, r2.w
      div r1.w, r2.z, r1.w
      add r1.w, r1.w, r2.x
      div r1.w, r2.x, r1.w
      sqrt r1.w, r1.w
      mul r1.w, r1.w, r2.y
      movc r0.w, r0.w, r1.w, r2.y
      mad r1.w, r6.x, r10.x, -r6.x
      mad r1.w, r1.w, r6.x, l(1.000000)
      mul r1.w, r1.w, r1.w
      mul r1.w, r1.w, l(3.14159274)
      div r1.w, r10.x, r1.w
      mul r0.w, r0.w, r1.w
      mul r1.w, r6.y, r6.y
      mad r1.w, r1.w, l(4.000000), l(0.000010)
      rcp r1.w, r1.w
      mul r0.w, r0.w, r0.y
      mul r0.w, r1.w, r0.w
      mul r15.xyz, r0.xxxx, r0.wwww
      dp3_sat r0.w, r4.xyzx, r7.xyzx
      mad r2.xy, r0.wwww, l(-11.000000, -11.000000, 0.000000, 0.000000), l(12.000000, 13.000000, 0.000000, 0.000000)
      mul r1.w, r2.y, l(0.200000)
      dp3_sat r1.x, r1.xyzx, r7.xyzx
      log r1.x, r1.x
      mul r1.x, r1.x, r2.x
      exp r1.x, r1.x
      mad r1.x, r1.w, r1.x, l(0.800000)
      mad r0.w, r0.w, r1.x, -r0.y
      mad r0.y, r0.z, r0.w, r0.y
      add r0.x, -r0.x, l(1.000000)
      mul r0.x, r0.x, r0.y
      mul r0.xyz, r0.xxxx, r12.xyzx
      mul r16.xyz, r0.xyzx, l(0.318309873, 0.318309873, 0.318309873, 0.000000)
      mov r14.xyz, l(0,0,0,0)
      break
      default
      mov r14.xyz, l(0,0,0,0)
      mov r15.xyz, l(0,0,0,0)
      mov r16.xyz, l(0,0,0,0)
      break
    endswitch
    mad r0.xyz, r15.xyzx, r8.xxxx, r14.xyzx
    mul r1.xyz, r5.xyzx, r9.xxxx
    eq r0.w, cb1[196].w, l(0.000000)
    mul r2.xyz, r1.xyzx, r14.xyzx
    dp3 r1.w, r2.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
    and r1.w, r0.w, r1.w
    and r1.w, r1.w, r3.y
    mul r2.xyz, r5.xyzx, r9.yyyy
    mul r2.xyz, r2.xyzx, r16.xyzx
    mad r4.xyz, r0.xyzx, r1.xyzx, r2.xyzx
    dp3 r0.x, r2.xyzx, l(0.300000, 0.590000, 0.110000, 0.000000)
    add r0.x, r0.x, r1.w
    movc r0.x, r0.w, r0.x, r1.w
    and r0.x, r0.x, r3.y
  else
    mov r4.xyz, l(0,0,0,0)
    mov r0.x, l(0)
  endif
  eq r0.y, cb1[196].w, l(0.000000)
  and r4.w, r0.x, r0.y
  mov o0.xyzw, r4.xyzw
else
  mov o0.xyzw, l(0,0,0,0)
endif
ret
// Approximately 0 instruction slots used
